package testes;

import java.io.File;
import java.util.ArrayList;

import junit.framework.Assert;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import persistencia.MecanismoDePersistenciaSeguro;

public class TestaMecanismoDePersistenciaSeguro {
	
	private final String ARQUIVO_DE_TESTE = "arquivos/testes.ser";
	private File arquivoDeTeste = new File(ARQUIVO_DE_TESTE);				
	private MecanismoDePersistenciaSeguro mecanismo;
	private ArrayList<String> lista;
	
	@Before
	public void antesDoTeste() throws Exception{
		if(!arquivoDeTeste.exists()){
			arquivoDeTeste.createNewFile();
		}
		mecanismo = new MecanismoDePersistenciaSeguro(ARQUIVO_DE_TESTE);
		System.out.println("Antes do @Test");
		lista = new ArrayList<String>();
		lista.add("Teste Funcionando");
		lista.add("Teste Funcionando[2]");
	}
	
	@SuppressWarnings("unchecked")
	@Test
	public void testaLeituraEscrita() throws Exception{
		File arquivoDeTeste = new File(ARQUIVO_DE_TESTE);
		Assert.assertTrue(arquivoDeTeste.length() == 0);
		mecanismo.persisteNoArquivo(lista);
		Assert.assertTrue(arquivoDeTeste.length() != 0);
		ArrayList<String> listaRecuperada =	(ArrayList<String>) mecanismo.recuperaDoArquivo();
		Assert.assertEquals("Teste Funcionando", listaRecuperada.get(0));
		Assert.assertEquals("Teste Funcionando[2]", listaRecuperada.get(1));
	
	}
	
		
		
	
	
	@After
	public void depoisDoTestes(){
		arquivoDeTeste.delete();
		System.out.println("Fim dos teste de persistencia");
	}
}
